// pages/publish/publish.js
const app = getApp()
//引入api接口
const { publish } = require("../../utils/api")
Page({
	/**
	 * 页面的初始数据
	 */
	data: {
		//文件列表
		fileList: [],

		//帖子
		post: {
			title: null, // 标题
			details: null, // 正文
			image: '', // 上传图片地址
			memberId: null, // 用户id
		}

	},
	// 输入标题
	enterTtle(e) {
		this.setData({
			['post.title']: e.detail.value
		})
		console.log('文章标题为：' + this.data.post.title);
	},

	// 输入正文
	enterText(e) {
		this.setData({
			['post.details']: e.detail.value
		})
		console.log('文章正文为：' + this.data.post.details);
	},

	/** 上传图片操作 */
	// 选择图片
	handleAdd(e) {
		// 1.上传的文件，是一个对象数组，但其中只包含本次上传的文件对象
		const files = e.detail.files;
		console.log(files);

		// 2.遍历对象数组，取到其中的每一个文件对象，上传：每次选择图片都上传，展示每次上传图片的进度
		files.forEach(file => this.onUpload(file))
	},
	// 上传图片
	onUpload(file) {
		// 文件列表
		const {
			fileList
		} = this.data;

		// 把文件对象保存到文件列表中（状态：上传中）
		this.setData({
			fileList: [...fileList, {
				...file,
				status: 'loading'
			}],
		});

		// 文件列表长度
		const {
			length
		} = fileList;

		console.log(this.data.fileList);
		console.log(file);

		// 上传文件
		const task = wx.uploadFile({
			url: 'http://121.41.73.196:80/client/wxUpload/uploadFile', // 仅为示例，非真实的接口地址
			filePath: file.url,
			name: 'file',
			formData: {
				user: 'test'
			},
			success: (res) => {
				console.log(res.data);
				this.setData({
					[`fileList[${length}].status`]: 'done',
					['post.image']: res.data
				});
			},
		});
		task.onProgressUpdate((res) => {
			this.setData({
				[`fileList[${length}].percent`]: res.progress,
			});
		});
	},
	// 删除图片
	handleRemove(e) {
		const {
			index
		} = e.detail;
		const {
			fileList
		} = this.data;

		fileList.splice(index, 1);
		this.setData({
			fileList,
			['post.image']: ''
		});
		console.log(this.data.fileList);
	},

	// 发布帖子
	confirm() {
		const { title, details, image } = this.data.post
		if (title == '' || title == null) {
			wx.showToast({
			  title: '请输入标题！',
			  icon: 'error'
			})
		} else if (details == '' || details == null) {
			wx.showToast({
			  title: '请输入正文！',
			  icon: 'error'
			})
		} else {
			this.setData({
				['post.memberId']: app.globalData.currentUser.id
			})
			publish(this.data.post).then((res) => {
				wx.showToast({
				  title: '发布成功！',
				})
				wx.redirectTo({
				  url: '/pages/forum/forum',
				})
			})
		}
	}
	
})